Spring Cloud 中整合Zipkin进行服务跟踪

在这篇文章里介绍如何将Zipkin整合到我们的云服务里。Zipkin是一个开源项目,它提供了在分布式环境下发送、接收、存储和可视化跟踪的机制。这使我们能够对服务之间的活动进行关联,并更清楚地了解我们服务中发生的情况。

这篇文章中的示例工程是基于之前文章的进一步开发,想了解更多情况可阅读。“使用Spring Cloud搭建的微服务示例” “Spring Cloud 微服务的安全保护”

1、Zipkin服务

Zipkin服务将存储我们服务的所有操作步骤,每一步操作都会发送到该服务器用来进行跟踪识别。

1、1创建

新建一个Spring Boot工程,在POM中添加一些依赖

<dependency>
    <groupId>io.zipkin.java</groupId>
    <artifactId>zipkin-server</artifactId>
</dependency>
<dependency>
    <groupId>io.zipkin.java</groupId>
    <artifactId>zipkin-autoconfigure-ui</artifactId>
    <scope>runtime</scope>
</dependency>

1、2启用

在主应用类里增加@EnableZipkinServer注解,此注解标识这个服务监听所有操作和行为以供查询。

@SpringBootApplication
@EnableEurekaClient
@EnableZipkinServer
public class ZipkinApplication {
    public static void main(String[] args) {
        SpringApplication.run(ZipkinApplication.class, args);
    }
}

1、3配置

在工程的src/main/resources目录下新建一个bootstrap.properties文件,添加一些配置项。

spring.cloud.config.name=zipkin
spring.cloud.config.discovery.service-id=config
spring.cloud.config.discovery.enabled=true
spring.cloud.config.username=configUser
spring.cloud.config.password=configPassword

eureka.client.serviceUrl.defaultZone=http://discUser:discPassword@localhost:8082/eureka/

在Git仓库里新增zipkin.properties文件,定义服务名称和端口。

spring.application.name=zipkin
server.port=8088

eureka.client.region = default
eureka.client.registryFetchIntervalSeconds = 5

logging.level.org.springframework.web=debug

1、4运行

至此Zipkin服务已经创建完毕,我们可以将服务启动起来验证一下。首先需要启动config、discovery服务,然后再启动zipkin服务。在浏览器里输入http://localhost:8088,能看到Zipkin的首页。
这里写图片描述

2、服务配置

将我们的服务配置为Zipkin Client将操作信息发送到Zipkin Server中。这里我们要修改book和gatew服务。

2、1POM引用

在pom.xml文件里添加spring-cloud-starter-zipkin。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

2、2book服务配置

修改配置库里的book-service.properties文件

spring.zipkin.locator.discovery.enabled=true
spring.zipkin.baseUrl=http://localhost:8088/
spring.sleuth.sampler.percentage=1.0
spring.sleuth.web.skipPattern=(^cleanup.*)

2、3gateway服务配置

spring.zipkin.locator.discovery.enabled=true
spring.zipkin.baseUrl=http://localhost:8088/
spring.sleuth.sampler.percentage=1.0
spring.sleuth.web.skipPattern=(^cleanup.*|.+favicon.*)

3、运行

将所有服务的启动起来,通过浏览器访问http://localhost:8080/book-service/books
这时在Zipkin控制台http://localhost:8088 就能看到服务运行的样子。一个请求所花费的时间以及这次请求包含了2步各花费的时间。
这里写图片描述

点击进去还能看到详细数据。
这里写图片描述

这里写图片描述

5、总结

我们已经看到了将Zipkin集成到云应用程序中是多么容易。随着我们的应用越来越复杂,Zipkin可以为我们提供关于一个请求所花费时间的详细信息。这可以帮助我们确定程序在哪里减速,并指出我们的应用需要改进的地方。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

peterwanghao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值